// circleWave
import * as Cesium from '@cesium/Source/Cesium.js';

export default class Scaner {
  constructor(viewer, options) {
    this.viewer = viewer;
    this.options = options;

    this.init();
  }

  init() {

    const {viewer} = this;

    //取消双击事件
    viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.LEFT_DOUBLE_CLICK);
    //设置homebutton的位置
    Cesium.Camera.DEFAULT_VIEW_RECTANGLE = Cesium.Rectangle.fromDegrees(110.15, 34.54, 110.25,
    34.56); //Rectangle(west, south, east, north)
    //设置初始位置
    viewer.camera.setView({
      destination: Cesium.Cartesian3.fromDegrees(110.2, 34.55, 3000000)
    });

    //开启深度检测
    viewer.scene.globe.depthTestAgainstTerrain = true;

    let rotation = Cesium.Math.toRadians(30);

    function getRotationValue() {
      rotation -= 0.02;
      return rotation;
    }

    function drawCanvas() {
      let canvas = document.getElementById('canvas-a');
      let context = canvas.getContext('2d');
      let grd = context.createLinearGradient(175, 100, canvas.width, 150);
      grd.addColorStop(0, 'rgba(0,255,0,0)');
      grd.addColorStop(1, 'rgba(0,255,0,1)');
      context.fillStyle = grd;
      context.beginPath();
      context.moveTo(150, 150);
      context.arc(150, 150, 140, (-90 / 180) * Math.PI, (0 / 180) * Math.PI); //context.arc(x,y,r,sAngle,eAngle,counterclockwise);
      context.fill();
      return canvas;
    }

    let i = 0;
    viewer.entities.add({
      name: 'Rotating rectangle with rotating texture coordinate',
      rectangle: {
        coordinates: new Cesium.CallbackProperty(function() {
          return Cesium.Rectangle.fromDegrees(-75.0, 30.0, -70.0, 35.0);
        }, false),
        material: new Cesium.ImageMaterialProperty({
          image: new Cesium.CallbackProperty(drawCanvas, false),
          transparent: true
        }),
        rotation: new Cesium.CallbackProperty(getRotationValue, false),
        stRotation: new Cesium.CallbackProperty(getRotationValue, false)
      }
    });
  }
};
